package org.linlinjava.litemall.db.dao.divided;

import org.apache.ibatis.annotations.Param;
import org.linlinjava.litemall.db.domain.AgedmallPromoteWithdrawalRecord;
import org.linlinjava.litemall.db.domain.AgedmallPromoteWithdrawalRecordExample;
import org.linlinjava.litemall.db.vo.app.PromoteCashDto;

import java.math.BigDecimal;
import java.util.List;

public interface AgedmallPromoteUserWithdrawalRecordMapper {


    /**
     * 查询提现信息
     * @param userId
     * @param year
     * @return
     */
    List<PromoteCashDto> getWithdrawal(Integer userId, Integer year);

    /**
     * 查询提现总笔数
     * @param userId
     * @param year
     * @return
     */
    Integer getWithdrawalCount(Integer userId, Integer year,Integer month);

    /**
     * 查询收入信息
     * @param userId
     * @param year
     * @param month
     * @return
     */
    PromoteCashDto getIncome(Integer userId,Integer year,Integer month);

    /**
     * 查询收入笔数
     * @param userId
     * @param year
     * @param month
     * @return
     */
    Integer getIncomeCount(Integer userId,Integer year,Integer month);


    /**
     * 查询某个月每天的总数据
     * @param userId
     * @param year
     * @param month
     * @return
     */
    List<PromoteCashDto> getWithdrawalDay(Integer userId,Integer year,Integer month);

    /**
     * 查询某个月每天的提现的总笔数
     * @param userId
     * @param year
     * @param month
     * @param day
     * @return
     */
    Integer getWithdrawalDayCount(Integer userId,Integer year,Integer month,Integer day);

    /**
     * 查询每天收入的总金额
     * @param userId
     * @param year
     * @param month
     * @param day
     * @return
     */
    PromoteCashDto getIncomeCountDay(Integer userId,Integer year,Integer month,Integer day);


    /**
     * 统计收入信息
     * @param userId
     * @param year
     * @return
     */
    List<PromoteCashDto> getIncomeCountYearMonth(Integer userId,Integer year);


    /**
     * 统计提现信息
     * @param userId
     * @param year
     * @return
     */
    List<PromoteCashDto> getWithdrawalYearMonth(Integer userId,Integer year);


    /**
     * 查询每天收入的总笔数
     * @param userId
     * @param year
     * @param month
     * @param day
     * @return
     */
    Integer getIncomeCountDayCount(Integer userId,Integer year,Integer month,Integer day);


    Integer getUserWithdrawarLast();



}